CEPH

Specter & π

CEPH c'est koi?

CEPH c'est koi?

CEPH est un système de stockage distribué open-source qui offre du stockage objet, bloc et fichier sur du matériel standard, sans point de défaillance unique tout en étant extensible. 😏

Le stockage distribué

Le stockage distribué est une méthode de stockage de données qui répartit les données sur plusieurs machines appelées nœuds.

Stockage distribué

Point unique de défaillance

Un point unique de défaillance est un composant d'un système qui, si jamais il échoue, entraîne la panne complète du système.

Donc plus dur de casser la prod! :( Askip...

Point unique de défaillance

Extensibilité

CEPH est conçu pour être facilement extensible, ce qui permet d'ajouter ou retirer du stockage sans avoir à recalculer le cluster entier.

Dans ta gueule ZFS!!! Extensibilité

Les OSD

OSD signifie "Object Storage Daemon".

C'est un service qui s'occupe de stocker les données sur les disques.

Il y a un OSD par disque physique. Il y a donc plusieurs OSD par machine qui héberge les disques.

OSD1

BlueStore

BlueStore est le backend de stockage par défaut pour les OSD, il stocke:

  • les métadonnées (un peu comme des inodes ext4)
  • les données brutes
OSD2

SSD

Pour améliorer les performances de l'OSD, les métadonnées d'un disque peuvent être stockées sur un disque SSD. Kachow

OSD3

Ça fait beaucoup de SSD ça, non?

Ni les lignes PCIe ni la tréso sont illimitées!

Seulement deux SSDs redondants stockent les métadonnées de tous les disques du même noeud

OSD4

Les moniteurs

Un moniteur est un service qui s'occupe de maintenir la carte du cluster.

C'est grâce à lui qu'on sait où sont les données.

Une carte ?

Le moniteur n'indique pas est la donnée qu'on cherche !

Il renvoie toute la carte, et le client évalue où chercher la donnée avec CRUSH

CRUSH ?

Controlled Replication Under Scalable Hashing

Un algorithme qui permet de trouver la localisation d'une donnée depuis une carte.

Exemple: crushmap

simple crushmap complexe crushmap

Exemple: recherche d'une donnée

Placement Group : place la donnée dans plusieurs OSD.

get data simple get data pg get datas pg

Les pools et types de données

RADOS

Reliable Autonomic Distributed Object Store

Tout ce qu'on a vu fait partie du stockage RADOS (Reliable Autonomic Distributed Object Store).

C'est le coeur de CEPH.

Pool

Avant de pouvoir écrire sur CEPH, on crée une pool.

Une pool est une partition logique.

Chaque donnée doit obligatoirement appartenir à une pool.

pool storage 1 pool storage 2

Pool

Par défaut, ceph propose plusieurs "types" de pool:

  • RBD (RADOS Block Device): permet de stocker des "disques virtuels" en blocks
  • CephFS (CEPH File System): permet de stocker des fichiers dans une arborescence
  • RGW (RADOS Gateway): permet d'exposer une API S3 de stockage de fichiers

librados est utilisé pour traduire ces 3 types de pool en stockage RADOS.

Pool : différents paramètres

  • application: un tag pour décrire ce que contient la pool comme donnée (rdb, rgw, cephfs...)
  • réplication: le nombre de fois que la donnée est répliquée
  • pg: le nombre de pg différents de la pool
  • etc.

Les pools de Minet

Les pools de minet

En pratique?

Un client qui veut lire des données doit ...

accrochez vous!

J'ai dit ACCROCHEZ VOUS!!!

Demander la carte du cluster au moniteur

Trouver le PG où sont les données avec CRUSH et la carte

Trouver les OSDs où sont les données avec CRUSH et le PG

Demander les données aux OSDs

Les OSDs trouvent l'adresse des données dans les métadonnées sur les SSDs

Les OSDs lisent les données depuis le HDD et les renvoient au client

Entrons dans les détails maintenant!

NON!

Les managers

Après les OSD et les MON, il y a aussi les "MGR" (manageurs)

Ils s'occupent de tout ce qui est annexe

  • Faire tourner les plugins (dashboard, prometheus exporter, etc...)
  • Suivre l'état du cluster (health)
  • Etc...

Et à MiNET?

À MiNET

  • Les monitors 1,2 et 3 sont des services de mon1,mon2,mon3
  • Les OSDs sont des services de Newton,Galilée,Kepler
  • Les managers sont des services de Newton,Galilée,Kepler
Ceph à MiNET

À MiNET

Hosts de minet

Questions?

Blooket!!!